//
//  MotionDetectView.m
//  MotionCheck
//
//  Created by Naoki TSUTSUI on 10/02/06.
//  Copyright 2010 iphoneworld.jp. All rights reserved.
//

#import "MotionDetectView.h"


@implementation MotionDetectView
@synthesize statusLabel;
@synthesize statusClearButton;

- (void)dealloc {
  [statusLabel release];
  [statusClearButton release];
  [super dealloc];
}


- (IBAction)statusClear:(id)sender {
  // 状況表示をクリアする
  statusLabel.text = @"";
}


/*
- (void)drawRect:(CGRect)rect {
  // Drawing code
}
*/

#pragma mark -
#pragma mark Motion-event handling

// モーションイベントハンドラを実装します。
// とたえ中身がなくても、全てのハンドラを実装することが推奨されている。

- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event {
  NSLog(@"motionBegan...");
}

- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {
	if (motion = UIEventSubtypeMotionShake ) {
    NSLog(@"motionEnded!!");
    statusLabel.text = @"シェイクされました";
	}
}

- (void)motionCancelled:(UIEventSubtype)motion withEvent:(UIEvent *)event {
  NSLog(@"motionCancelled");
}


#pragma mark -
#pragma mark Configuration

// MotionCheckViewControllerのnibファイルよりコールされる
- (void)awakeFromNib {
//	self.backgroundColor = [UIColor colorWithRed:255.0 green:235.0 blue:180.0 alpha:0.8];
  NSLog(@"awakeFromNib");
  statusLabel.text = @"ここに状況を表示します";

	[self becomeFirstResponder];
}


// モーションイベントを取得するために、ファーストレスポンダになる必要があるため、YESを返す。
// １タップのみのタッチ検出には必要ない。
// このメソッドは、becomeFirstResponderメソッドによりコールされる
// 
- (BOOL)canBecomeFirstResponder {
  NSLog(@"canBecomeFirstResponder");
	return YES;
}


#pragma mark -
#pragma mark Touch handling

// タッチイベントハンドラを実装します。
// とたえ中身がなくても、全てのハンドラを実装することが推奨されている。

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
	
}

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
	
}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
	
	UITouch *theTouch = [touches anyObject];
	 
  // ２タップされたら、レシーバ（この場合はself）がファーストレスポンダになることを通知する
  // ファーストレスポンダになれれば、モーションの検出が可能になる
  // canBecomeFirstResponderがコールされる

	if (([theTouch tapCount] == 2) && [self becomeFirstResponder]) {
		NSLog(@"２タップ");
    statusLabel.text = @"２タップされました";
		return;
	}
	
	if ([theTouch tapCount] == 1) {
		NSLog(@"１タップ");
    statusLabel.text = @"１タップされました";
	}
}

- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event {
	
}

@end
